/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mmaingenieria.GestorFacturacion.database;

import com.mmaingenieria.GestorFacturacion.interfaces.InterfaceUsuarioDAO;

/**
 *
 * @author Mikle
 */
public abstract class DAOFactory {
    
    public static final int MYSQL = 1;
    public static final int SQLSERVER = 2;
    public static final int ORACLE = 3;
    public static final int ODBC = 4;
    public static final int TXTFILE = 5;

    
    public abstract InterfaceUsuarioDAO getInterfaceUsuarioDAO();
    
    //Los metodos que vaya poniendo aqui tendre que implentarlos
    //en MySqlDAOFactory, OracleFactory, SqlServerFactory,..... (yo solo MySQL)
    
    //public abstract IRolDAO getIRolDAO();

    //public abstract IClienteDAO getIClienteDAO();


    
    //Dependiendo de que valor le pases al constructor devolvera una instancia
    //del tipo que sea. Solo está implementada para MySQL, pero solos ería poner
    //más cases
    public static DAOFactory getDAOFactory(int tipo) {

        switch (tipo) {
            case MYSQL:
                return new MySqlDAOFactory();
        }
        return null;
    }
    
}
